using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using EcsDebugSimulator.Services.SimulatorHandle;
using EcsDebugSimulator.ViewModels;
using EcsDebugSimulator.Views;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Win32;

namespace EcsDebugSimulator
{
    public partial class App : Application
    {
        public override void Initialize()
        {
            AvaloniaXamlLoader.Load(this);

            var services = new ServiceCollection();


            services.AddKeyedTransient<SimulatorHandleBase,SimulatorHandleSocket>("Simulator");
           
            services.AddTransient<EquipSimulatorOperation>();

            Register.App = services.BuildServiceProvider();
        }

        public override void OnFrameworkInitializationCompleted()
        {
            if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
            {
                desktop.MainWindow = new MainWindow
                {
                    DataContext = new MainViewModel()
                };
            }
            else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
            {
                singleViewPlatform.MainView = new MainView
                {
                    DataContext = new MainViewModel()
                };
            }

            base.OnFrameworkInitializationCompleted();
        }
    }
}